package com.integration.maven.service2controllerProcessor.annotation;

public enum Menu {

    nil(0, 0,"/", "nil", null),

    // level  =  0 接口 1 目录 2 菜单 3 按钮

    数据统计(1, 1,"/", "statistics:statistics", null),


    /**
     * 一级
     */
    首页概览(1, 1,"/", "index:index", null),

        监控中心(2, 1,"/", "index:monitor",  Menu.首页概览),
        代理统计(2, 1,"/", "index:agent",  Menu.首页概览),

        工作台(2, 2,"/", "index:workbench",  Menu.首页概览),

    /**
     *  超市管理
     */
    超市管理(1, 1,"/", "shop:shop", null),
        超市一商户管理(2, 1,"/", "shop:market",  Menu.超市管理),
            超市一获取超市信息(3, 1,"/", "shop:marketInfo",  Menu.超市一商户管理),
            超市一修改超市信息(3, 2,"/", "shop:marketInfoUpdate",  Menu.超市一商户管理),
            超市一处理超市订单(3, 3,"/", "shop:dealOrderNotFinish",  Menu.超市一商户管理),
    /**
     * 一级
     */
    客户管理(1, 2,"/", "customer:customer", null),
        客户一用户管理(2, 1,"/", "customer:user",  Menu.客户管理),
            客户一添加用户(3, 1,"/", "customer:user:save",  Menu.客户一用户管理),
            客户一编辑用户(3, 2,"/", "customer:user:update",  Menu.客户一用户管理),
            客户一提现奖励(3, 3,"/", "customer:user:withdrawal",  Menu.客户一用户管理),
            客户一查看用户信息(3, 4,"/", "customer:user:check",  Menu.客户一用户管理),
            客户一审核用户信息(3, 5,"/", "customer:user:review",  Menu.客户一用户管理),
            客户一用户批量操作(3, 6,"/", "customer:user:batch",  Menu.客户一用户管理),
            客户一成为超市代理(3, 7,"/", "customer:user:becomeShopAgent",  Menu.客户一用户管理),

        客户一加盟管理(2, 2,"/", "customer:join",  Menu.客户管理),
        客户一申请无车加盟(2, 3,"/", "customer:applyJoin",  Menu.客户管理),
            编辑申请加盟(3, 1,"/", "applyJoin:update",  Menu.客户一申请无车加盟),
            查询单个申请信息(3, 2,"/", "applyJoin:check",  Menu.客户一申请无车加盟),

        客户一车型管理(2, 4,"/", "customer:carType",  Menu.客户管理),
            添加车型(3, 1,"/", "carType:save",  Menu.客户一车型管理),
            编辑车型(3, 2,"/", "carType:update",  Menu.客户一车型管理),

        客户一评价管理(2, 5,"/", "customer:evaluate",  Menu.客户管理),

        客户一反馈管理(2, 6,"/", "customer:feedback",  Menu.客户管理),
            编辑客户反馈(3, 1,"/", "feedback:update",  Menu.客户一反馈管理),

    /**
     * 一级
     */
    货单管理(1, 3,"/1", "bill:bill", null),
        货单一货单管理(2, 1,"/", "bill:bills",  Menu.货单管理),
            添加货单(3, 1,"/", "bills:save",  Menu.货单一货单管理),
            编辑货单(3, 2,"/", "bills:update",  Menu.货单一货单管理),

        货单一仓库货单审核(2, 2,"/", "bill:warehouseBill",  Menu.货单管理),

        发单管理(2, 3,"/", "bill:send",  Menu.货单管理),
        接单管理(2, 4,"/", "bill:receive",  Menu.货单管理),

    /**
     * 一级
     */
    代理管理(1, 2,"/", "agent:agent", null),
        代理一主代管理(2, 1,"/", "agent:main",  Menu.代理管理),
            处理主代理审核(3, 1,"/", "agent:dealWith",  Menu.代理一主代管理),
        代理一代理详情(2, 2,"/", "agent:details",  Menu.代理管理),

    /**
     * 一级
     */

    文件管理(1, 4,"/1", "file:file", null),
        资源管理(2, 1,"/", "file:resource",  Menu.文件管理),

    /**
     * 一级
     */
    代理客户管理(1, 2,"/", "agentCustomer:agentCustomer", null),
        代理一司机管理(2, 1,"/", "agentCustomer:driver",  Menu.代理客户管理),
            代理一查看用户信息(3, 3,"/", "agentCustomer:user:check",  Menu.代理一司机管理),
            代理一审核用户信息(3, 4,"/", "agentCustomer:user:review",  Menu.代理一司机管理),
            代理一用户批量操作(3, 5,"/", "agentCustomer:user:batch",  Menu.代理一司机管理),

        代理一申请无车加盟(2, 3,"/", "agentCustomer:applyJoin",  Menu.代理客户管理),
            代理一处理无车加盟申请(3, 1,"/", "agentApplyJoin:update",  Menu.代理一申请无车加盟),
            代理一查询单个申请信息(3, 2,"/", "agentApplyJoin:check",  Menu.代理一申请无车加盟),

    /**
     * 一级
     */
    财务管理(1, 2,"/", "financial:financial", null),
        手动提现(2, 1,"/", "financial:manual",  Menu.财务管理),
        提现申请(2, 2,"/", "financial:applyPercentage",  Menu.财务管理),
        交易记录(2, 3,"/", "financial:logPercentage",  Menu.财务管理),
        订单流水(2, 4,"/", "financial:orderAccount",  Menu.财务管理),
        超市提现记录(2, 5,"/", "financial:shopWithdrawal",  Menu.财务管理),
        平台出入账(2, 6,"/", "financial:journalAccount",  Menu.财务管理),
        超市钱包(2, 7,"/", "financial:walletMarketInfo",  Menu.财务管理),


    /**
     * 一级
     */
    代理财务管理(1, 2,"/", "agentFinancial:agentFinancial", null),
        代理一财务管理(2, 1,"/", "agentFinancial:index",  Menu.代理财务管理),


        代理一货单统计(2, 3,"/", "agentFinancial:bill",  Menu.代理财务管理),
            代理一完成货单统计头(3, 1,"/", "agentFinancial:bill",  Menu.代理一货单统计),

    /**
     * 一级
     */
    代理货单管理(1, 2,"/", "agentBill:agentBill", null),
        代理一货单管理(2, 1,"/", "agentBill:bills",  Menu.代理货单管理),
            代理一查看货单(3, 1,"/", "bills:agentCheck",  Menu.代理一货单管理),


    /**
     * 一级 仓库管理
     */
    仓库货单管理(1, 2,"/", "warehouseBill:warehouseBill", null),

        仓库一货单管理(2, 1,"/", "warehouseBill:warehouseBills",  Menu.仓库货单管理),

        仓库一创建货单(2, 2,"/", "warehouseBill:createBill",  Menu.仓库货单管理),

        仓库一派送货单(2, 3,"/", "warehouseBill:deliveryBill",  Menu.仓库货单管理),

        仓库一待取消货单(2, 4,"/", "warehouseBill:waitCancelBill",  Menu.仓库货单管理),

        仓库一待完成货单(2, 5,"/", "warehouseBill:waitFinishBill",  Menu.仓库货单管理),



    /**
     * 一级 商品库
     */
    商品库管理(1, 2,"/", "productWarehouse:productWarehouse", null),

        商品库一超市商品库(2, 1,"/", "productWarehouse:shop",  Menu.商品库管理),
            商品库一超市编辑单个商品(3, 1,"/", "productWarehouse:shopOneInfo",  Menu.商品库管理),
            商品库一添加商品信息到商品库(3, 2,"/", "productWarehouse:shopAdd",  Menu.商品库管理),





    /**
     * 一级
     */
    系统管理(1, 5,"/", "system:system", null),

        用户管理(2, 1,"/", "user:user",  Menu.系统管理),
            创建用户(3, 1,"/", "user:save",  Menu.用户管理),
            编辑用户(3, 2,"/", "user:update",  Menu.用户管理),
            删除用户(3, 3,"/", "user:delete",  Menu.用户管理),
            密码重置(3, 4,"/", "user:resetPass",  Menu.用户管理),
            锁定操作(3, 5,"/", "user:batch",  Menu.用户管理),

        菜单管理(2, 2,"/", "menu:menu", Menu.系统管理),

        角色管理(2, 3,"/", "role:role",  Menu.系统管理),
            创建角色(3, 1,"/", "role:save",  Menu.角色管理),
            编辑角色(3, 2,"/", "role:update",  Menu.角色管理),
            删除角色(3, 3,"/", "role:delete",  Menu.角色管理),
            分配菜单(3, 4,"/", "role:assignMenu",  Menu.角色管理),


        权限管理(2, 4,"/", "org:org",  Menu.系统管理),

        系统一评价管理(2, 5,"/", "system:evaluate",  Menu.系统管理),
        系统一反馈管理(2, 6,"/", "system:feedback",  Menu.系统管理),


    /**
     * 一级
     */
    超市商户端(1, 6,"/", "shopAdmin:shopAdmin", null),
        // 个人信息
        超市商户端_个人信息(2, 1,"/", "shopAdmin:userInfo",  Menu.超市商户端),
        // 我的银行卡
        超市商户端_我的银行卡(2, 2,"/", "shopAdmin:bankCard",  Menu.超市商户端),
        // 员工管理
        超市商户端_员工管理(2, 3,"/", "shopAdmin:staff",  Menu.超市商户端),
        // 添加分类
        超市商户端_添加分类(2, 4,"/", "shopAdmin:addClassify",  Menu.超市商户端),
        // 添加商品
        超市商户端_添加商品(2, 5,"/", "shopAdmin:addProduct",  Menu.超市商户端),
        // 订单
        超市商户端_订单(2, 6,"/", "shopAdmin:order",  Menu.超市商户端),
        // 商品管理
        超市商户端_商品管理(2, 7,"/", "shopAdmin:product",  Menu.超市商户端),
        // 订单流水
        超市商户端_订单流水(2, 8,"/", "shopAdmin:orderJournal",  Menu.超市商户端),
        // 钱包
        超市商户端_钱包(2, 9,"/", "shopAdmin:wallet",  Menu.超市商户端),
        // 设备
        超市商户端_设备(2, 10,"/", "shopAdmin:device",  Menu.超市商户端),






    测试接口菜单(1, 200,"/", "test:test", null),

    ;

    private Integer levels;
    private Integer orders;
    private String path;
    private String id;

    private Menu parent;


    Menu(int levels, int orders, String path, String id, Menu parent) {

        this.levels = levels;
        this.orders = orders;
        this.path = path;
        this.id = id;
        this.parent = parent;

    }

    public Integer getLevels() {
        return levels;
    }

    public String getPath() {
        return path;
    }

    public String getId() {
        return id;
    }

    public Menu getParent() {
        return parent;
    }

    public Integer getOrders() {
        return orders;
    }
}
